/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2025-04-26
 * Time: 23:17
 */
public class Solution {
    private ListNode head; // 链表头节点

    public Solution(ListNode head) {
        this.head = head;
    }


    /**
     * 反转链表
     * @return 反转后的链表头节点
     */
    public ListNode reverseList() {
        if (head == null) {
            return head; // 空链表直接返回
        }

        ListNode current = head.next; // 当前节点从第二个节点开始
        head.next = null;         // 原头节点变为尾节点，其 next 设为 null

        while (current != null) {     // 遍历链表直到末尾
            ListNode curN = current.next; // 保存当前节点的下一个节点
            current.next = head;      // 将当前节点插入到反转后的链表头部
            head = current;          // 更新头节点为当前节点
            current = curN;           // 移动到下一个待处理节点
        }

        return head; // 返回反转后的头节点
    }
}
